Column

Chart A

Column

Chart B

Chart C

---
title: "Dashboard"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    source: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(p8105.datasets)

library(plotly)
```

```{r}
data("ny_noaa")



ny_noaa = 
  ny_noaa %>% 
  separate(date, into = c("year", "month", "day"), convert = TRUE) %>% 
  mutate(
    tmax = as.numeric(tmax),
    tmin = as.numeric(tmin))

```


Column {data-width=650}
-----------------------------------------------------------------------

### Chart A

```{r}
scatter_data <- ny_noaa %>%
  filter(month == 1) %>%  
  group_by(id, year) %>%
  summarize(mean_tmax = mean(tmax, na.rm = TRUE), .groups = 'drop')


plot_ly(scatter_data, x = ~year, y = ~mean_tmax, type = 'scatter', mode = 'markers',
        color = ~mean_tmax, 
        marker = list(size = 10, opacity = 0.5, line = list(color = 'rgba(255, 255, 255, 0.5)', width = 1)),
        hoverinfo = 'text',
        text = ~paste('Year:', year, 'Mean Tmax:', mean_tmax)) %>%
  layout(title = 'Mean Maximum Temperature for January Across Years for Each Station',
         xaxis = list(title = 'Year'),
         yaxis = list(title = 'Mean Maximum Temperature (°C)'))
```

Column {data-width=350}
-----------------------------------------------------------------------

### Chart B

```{r}
august_data <- ny_noaa %>%
  filter(month == 8) %>%
  group_by(id, year) %>%
  summarize(max_tmax = max(tmax, na.rm = TRUE), .groups = 'drop')

# Create the histogram with Plotly
plot_ly(august_data, x = ~max_tmax, type = "histogram",
        marker = list(color = 'rgba(102, 0, 102, 0.6)'),
        autobinx = FALSE,
        xbins = list(start = 150, end = 350, size = 10)) %>%
  layout(title = "Histogram of Maximum Temperatures in August",
         xaxis = list(title = "Maximum Temperature (°C)"),
         yaxis = list(title = "Frequency"))
```

### Chart C

```{r}
july_data <- ny_noaa %>%
  filter(month == 7) %>%
  group_by(id, year) %>%
  summarize(mean_tmax = mean(tmax, na.rm = TRUE), .groups = 'drop')


plot_ly(july_data, y = ~mean_tmax, x = ~as.factor(year),
        type = "box",
        hoverinfo = "y+x",
        boxpoints = "outliers", 
        marker = list(opacity = 0.6)) %>%
  layout(title = "Box Plot of Mean Maximum Temperature in July",
         yaxis = list(title = "Mean Maximum Temperature (°C)"),
         xaxis = list(title = "Year", tickangle = 45))
```